home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Presentations / Presentations ’97 / Sessions ’97 / Multiplatform Code⁄Data Sharing / HelloBothWorlds / GE / LibHdr / fastbcpy.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-02-18  |  2.3 KB  |  90 lines  |  [TEXT/CWIE]

  1. /*
  2.     FastBitCopies.h
  3.     
  4.     Interface to FastBitCopies.c
  5.     
  6.     Special bit copy routines for 8-bit graphics
  7.     
  8.     Copyright 1993 by Al Evans
  9.     
  10.     1/27/93
  11.  
  12.     Updated for GE for Windows 95 1.0, 11/29/95
  13.     
  14. */
  15.  
  16. #ifndef FASTBCOPIES
  17. #define FASTBCOPIES
  18.  
  19. //#define TESTING_C_RTNS
  20.  
  21. // If compiling for PowerMac or Windows 95, or testing, use C routines instead of 68000
  22.  
  23. #if (defined(powerc) || defined(__powerc) || defined (TESTING_C_RTNS)) || defined(TARGET_IS_WIN95) || defined (TARGET_IS_BEOS)
  24. #define MoveBitsXPM CMoveBitsXPM
  25. #define MoveBitsXPOR CMoveBitsXPOR
  26. #define MoveBitsCP CMoveBitsCP
  27. #define MoveBitsCPM CMoveBitsCPM
  28. #define MoveBitsMasked CMoveBitsMasked
  29. #endif
  30.  
  31. #define MoveBitsXP CMoveBitsXP
  32.  
  33. enum {
  34.     notTransparent = 40
  35. };
  36.  
  37. #ifdef __cplusplus
  38. extern "C" {
  39. #endif
  40.  
  41. GE_CALLBACK(void,QuickCopyBits)(const BitMap *srcBits, const BitMap *dstBits,
  42.                            const Rect   *srcRect, const Rect   *dstRect,
  43.                            short mode,RgnHandle maskRgn);
  44.  
  45. // Masking only used in MacOS and BeOS
  46. #if defined(TARGET_IS_MACOS) || defined(TARGET_IS_BEOS)
  47. //Returns a ptr to a 8-bit mask the same size  as srcBits
  48. //The mask confains 0xFF for each byte of keyPalIndex in srcBits, 0x00 for all others
  49. Ptr    MakeMask(const BitMap *srcBits, char keyPalIndex);
  50. #endif
  51.  
  52. /*
  53.     Assembly engines
  54. */
  55.  
  56. extern void MoveBitsXPM(Ptr source, Ptr dest, 
  57.                     long nLines, long nBytesPerLine,
  58.                     long srcRowBytes, long destRowBytes, long mirrorFlags);
  59.                     
  60. extern void MoveBitsXP(Ptr source, Ptr dest, 
  61.                     long nLines, long nBytesPerLine,
  62.                     long srcRowBytes, long destRowBytes, long mirrorFlags);
  63.                     
  64. extern void MoveBitsXPOR(Ptr source, Ptr dest, 
  65.                     long nLines, long nBytesPerLine,
  66.                     long srcRowBytes, long destRowBytes, long mirrorFlags, long colorIndex);
  67.                     
  68.  
  69. extern void MoveBitsNOTXP(Ptr source, Ptr dest, 
  70.                     long nLines, long nBytesPerLine,
  71.                     long srcRowBytes, long destRowBytes);
  72.  
  73. extern void MoveBitsCP(Ptr source, Ptr dest, 
  74.                     long nLines, long nBytesPerLine,
  75.                     long srcRowBytes, long destRowBytes);
  76.  
  77. extern void MoveBitsCPM(Ptr source, Ptr dest, 
  78.                     long nLines, long nBytesPerLine,
  79.                     long srcRowBytes, long destRowBytes, long mirrorFlags);
  80.  
  81. extern void MoveBitsMasked(Ptr source, Ptr dest, 
  82.                     long nLines, long nBytesPerLine,
  83.                     long srcRowBytes, long destRowBytes, Ptr mask, long mirrorFlags);
  84.                     
  85. #ifdef __cplusplus
  86. }
  87. #endif
  88.  
  89. #endif
  90.